1. Field of the Invention
The present invention generally relates to the management of received network events handled by a plurality of processing nodes. More specifically, the invention relates to a highly scalable apparatus for management of a receive transport protocol termination through the use of queues and pointers to memory locations.
2. Discussion of the Related Art
In the related art, operation in multiprocessing environments is known for handling various tasks requiring significant amounts of computing power, and which is best achieved by plurality of processors operating in parallel. Over time, it has become increasingly easy in the related art to integrate more than one processing node on a single chip, and thus create a powerful parallel processing unit. While the related art integration is highly effective in general processing applications, in other areas it would be advantageous to employ multiprocessing capabilities.
For example, in the related art area of network processing, many generally independent events occur in parallel and over short periods of time. For example, a file transfer protocol (FTP) session initiated by one user may be handled in parallel with another FTP session initiated by the same or another user, as well as other types of protocols that may be handled in parallel. Each FTP session generates its own events which, while adhering to the FTP requirements, are independent of each other. To achieve higher system throughput, it may be advantageous to handle these FTP sessions in parallel.
In the related art of the seven-layer communication model, data transferred over the network moves through the different layers to reach its final stage. The first layer is the physical layer that provides mechanical, electrical, functional and procedural means to activate, maintain and de-activate physical connections for bit transmission between data-link-entities, while the second layer is the data link layer that handles the transmission of frames (blocks) in a substantially error-free manner. Also, the third layer is the network layer that determines how messages are routed within the network, and allows transport entities to be independent from routing and relay considerations, including sub-network nodes.
The fourth layer is the transport layer that hides details of any network-dependent information from the higher layers by providing transparent data transfer. The transport layer is concerned with node to node transfer of data, rather than process to process. At the receiver portion, the data is reassembled in the correct sequence. Commonly, the activities associated with the handling of the third and fourth layer are performed by software.
The fifth layer is the session layer, as described in the related art standard communication model, and is responsible for establishing and releasing session connection. The sixth and seventh layers are the presentation and application layers, respectively, and are responsible for transforming application data into the common network format, and for communicating application process parameters.
In the related art, traffic is transported over the network using the transmission control protocol (TCP) or user datagram protocol (UDP). TCP is a connection-oriented transport media that sends data as unstructured streams of bytes. By using a sequence number and acknowledgment messages, TCP provides the source node with status on the bytes transmitted to the destination node. TCP is used when a reliable transport medium is required.
When data is lost, TCP can resend lost data, thereby ensuring reliable connectivity. TCP sends data as a sequence of xe2x80x9csegmentsxe2x80x9d. A segment is a collection of data bytes sent as a single message. Each segment is sent through the network individually, with certain header information affixed to the segment. As a whole, the sequence of segments is referred to as a datagram.
When datagrams are received from a source at a destination, the original information is reconstructed. The reconstruction may take various forms in the related art to support the specific application that began the process on the transmitting side. For example, if a file transfer protocol (FTP) takes place, then an application capable of reconstructing the original data from the datagrams received is used. In addition to its payload, each datagram contains additional information including the source address, the destination address, the source port and destination port numbers, checksum information, segment length and a byte sequence number.
The checksum field contains a digest of the header and the payload, and is used to confirm correct reception of data. The segment length field in the header specifies the number of payload bytes contained in the segment, and the sequence number indicates the position of the last byte of the segment in the continuous byte stream.
If the data has been received correctly, then an acknowledgement signal is sent to the source to confirm successful receipt of the datagram. However, if such an acknowledgement is not received at the source from the destination, or an error notification is received, the datagram is retransmitted from the destination to the source. Once all of the data segments have been received and reconstructed to the original data, the transmitted data segments may be used by the destination.
With the advent of related art high speed network systems, transmitting at speeds of over one gigabit per second (1 Gbps and 10 Gbps systems are currently in various stages of deployment), it is becoming increasingly advantageous to move traditionally software based activities of TCP to high performance hardware implementations. Scaling software based solutions for higher performance is normally considered a significant challenge in the related art. For example, but not by way of limitation, the number of bits per second to be transferred is correlated with the number of instructions per second to be processed. Therefore, it would be necessary at the TCP level to have processors capable of providing performance of 10 giga instructions per second for a 10 Gbps network, which would result in a high cost system.
Accordingly, it would be advantageous to provide a hardware solution for processing TCP level activities, and for such a solution to be easily scalable. For example, a plurality of processing nodes operating in parallel can be provided. The solution must be consistent with the standard communication model as developed by the International Standards Organization (ISO) and known as the Open Systems Interconnection (OSI) networking suite. It consists of seven layers: physical (L1), logical or data link (L2), network (L3), transport (L4), session (L5), presentation (L6), and application (L7). Each layer handles a different facet of the communication providing clear definitions on how data received from the network is to be handled on its way to the application layer (L7), and vice versa, how data from the application layer is to be transferred onto the network by the physical layer (L1). A significant amount of processing takes place in each of these stages to ensure proper operation and interoperability between software and hardware components of the system and those of different vendors. Data moving between the layers is generally accompanies by a layer header containing information about the data attached to the data construct, e.g., a data packet of a data block.
However, the challenges that require addressing in a multiprocessing environment for transmit transport termination in a computer network are different from those in general application multiprocessing. For example, but not by way of limitation, traffic flowing over the network must be handled efficiently without impacting overall system performance. It would also be advantageous to provide easily scalable solutions, hence overcoming the significant costs and complexities associated with the aforementioned prior art solutions.
However, the related art does not provide any scalable, practical solution thereto. As a result, there is an unmet need in the related art for the aforementioned hardware solution for addressing in a multiprocessing environment for transmit transport termination in a computer network.
It is an object of the invention to overcome at least the various problems and disadvantages of the related art.
It is another object of the present invention to provide a hardware solution for addressing in a multiprocessing environment for efficient transmit transport termination in a computer network.
To achieve at least the above as well as other objects, an apparatus for handling receive transport protocol termination of network events of a source to destination connection is provided. The apparatus comprises a processing node and a queue manager and scheduler (QMS) coupled between the processing node and a first memory that includes at least one queue that is controlled by the processing node. The apparatus also includes a data manager coupled between the, processing node and a second memory that is configured to store data packets of the network events, and a receive handler capable of receiving packets from a network, wherein the QMS, the data manager and the receive handler are capable of commonly communicating with one another.
Additionally, a queue manager and scheduler (QMS) for handling receive transport protocol termination of network events of a source to destination connection is provided. The QMS includes an interface to a receive handler capable of providing a next available memory object descriptor (MOD) with pointer information of a packet located in a second memory. The QMS is capable of receiving a command from a receive handler and initiating packet handling by an object queue located in a first memory. Once the packet is identified, including processing of layer 3 and layer 4 headers, the packet is assigned to an appropriate application stream queue (ASQ) designated to process packets belonging to a specific connection. The MOD is re-linked from the object queue to the tail of the appropriate ASQ.
Further, a method for handling a receive transport protocol termination of network events respective of a source to destination connection is provided, comprising a) allocating queues for correspondingly handling the network events, and b) receiving a data packet and positioning a pointer from a first queue in a first memory to the received data packet. The method also includes the steps of c) identifying the received data packet, and transferring handling of the identified data packet to a second queue in the first memory, and d) pre-fetching control information for the data packet to a processing node allocated to handle the second queue, wherein the handling of the identified packet is controlled by the processing node, and the data packet is received in a second memory.